#!/bin/bash

echo "=== 构建和测试大文件下载器 ==="

# 构建项目
echo "正在构建项目..."
cargo build --release

if [ $? -eq 0 ]; then
    echo "✅ 构建成功!"
else
    echo "❌ 构建失败!"
    exit 1
fi

# 显示帮助信息
echo ""
echo "=== 显示帮助信息 ==="
cargo run --release -- --help

# 测试小文件下载
echo ""
echo "=== 测试小文件下载 (10MB) ==="
echo "测试URL: https://speed.hetzner.de/10MB.bin"
echo "命令示例:"
echo "cargo run --release -- 'https://speed.hetzner.de/10MB.bin' --output test-10mb.bin --adaptive-buffer true --use-mmap true"

# 测试大文件下载参数
echo ""
echo "=== 大文件下载推荐参数 ==="
echo "对于100GB+文件，推荐使用以下参数:"
echo "cargo run --release -- 'YOUR_LARGE_FILE_URL' \\"
echo "  --connections 32 \\"
echo "  --chunk-size 52428800 \\"
echo "  --buffer-size 4194304 \\"
echo "  --use-mmap true \\"
echo "  --mmap-threshold 1073741824 \\"
echo "  --adaptive-buffer true \\"
echo "  --network-timeout 600 \\"
echo "  --max-retries 5 \\"
echo "  --check-disk-space true"

echo ""
echo "=== 新功能特性 ==="
echo "✅ 内存映射支持 (大文件优化)"
echo "✅ 自适应缓冲区大小"
echo "✅ 磁盘空间检查"
echo "✅ 指数退避重试机制"
echo "✅ 增强的网络超时设置"
echo "✅ 改进的断点续传"
echo "✅ 支持100GB+大文件下载"

echo ""
echo "=== 使用说明 ==="
echo "1. 基本使用: cargo run --release -- 'URL'"
echo "2. 断点续传: cargo run --release -- 'URL' --resume"
echo "3. 自定义参数: 查看上面的推荐参数"
echo "4. 查看详细日志: RUST_LOG=debug cargo run --release -- 'URL'"

echo ""
echo "构建完成! 可以开始测试下载功能了。"
